#include <iostream>
#include <Eigen/Dense>

using namespace std;
using namespace Eigen;

int main() {
    // 以Xd方式声明一个3x3的矩阵
    MatrixXd mat(3, 3);
    // 将矩阵(0,0)位置元素赋为1.5
    mat(0, 0) = 1.5;
    cout << "MatrixXd:\n " << mat << endl;

    // 以Matrix方式声明一个5x2的矩阵
    Matrix<double, 5, 2> m1;
    cout << "Matrix:\n " << m1 << endl;

    // 随机数矩阵
    MatrixXd m2 = MatrixXd::Random(5, 3);
    cout << "MatrixXd::Random:\n " << m2 << endl;

    Eigen::MatrixXd matrix1(2, 2);
    matrix1 << 1, 2,
               3, 4;

    Eigen::MatrixXd matrix2(2, 2);
    matrix2 << 5, 6,
               7, 8;

	// 矩阵加法
    Eigen::MatrixXd result = matrix1 + matrix2;
    std::cout << "Matrix Addition:\n" << result << std::endl;

	// 矩阵乘法
    result = matrix1 * matrix2;
    std::cout << "Matrix Multiplication:\n" << result << std::endl;

    return 0;
}
